<?php
require_once('../videopian-svn/trunk/VideopianCompatibilityMatrix.php');
$matrix = new VideopianCompatibilityMatrix();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Videopian - Upian Source</title>
<!--<base href="http://www.upian.com/upiansource/videopian/" />-->
<link rel="shortcut icon" href="http://www.upian.com/img/favicon.gif" />
<link href="../css/main.css" media="all" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.flash.js" type="text/javascript"></script>
<script src="js/videopian.js" type="text/javascript"></script>
</head>

<body>
<div id="container">
  <div id="header">
      <p style="float:right"><a href="en/" lang="en">English version</a></p>
      <a href="../" class="logo"><img src="../img/upiansource-logo.png" alt="Upian" /></a>
      <h1><span>Videopian :</span> récupérer les informations d'une vidéo</h1>
      <p>Ceci est la documentation de la classe PHP Videopian, qui permet de récupérer les informations d'une vidéo
	  hébergée sur un service de partage de vidéos à partir de son URL. <a href="#demo">Démo</a> / <a href="#download">Téléchargement</a></p>
      <p class="maj"><strong>~ version mise à jour le 17.07.2009</strong></p>
  </div>
  <div id="contenu">
    <div id="content-contenu" style="display: block;">
    
      <h2><a name="introduction"></a> 1. <span>Introduction</span></h2>
      
      <h3><a name="1.1"></a> 1.1 <span>Pré-requis</span></h3>
      
	  <ul>
		<li>PHP >= 5.2</li>
		<li><em>allow_url_fopen</em> = TRUE</li>
      </ul>
	  
      <h3><a name="1.2"></a> 1.2 <span>Services supportés</span></h3>

	  <ul>
	  <?php
	  foreach ($matrix->services() as $id => $service) {
		  echo '<li><a href="'.$service->url.'">'.$service->name.'</a>'.($service->api_key_required?' (clé API requise)':'').'</li>
      	';

	  } ?>
      </ul>
      
      <h3><a name="1.3"></a> 1.3 <span>Informations disponibles par service</span></h3>
      
      <table cellpadding="0" cellspacing="0">
          <thead>
              <tr>
                  <th></th>
                  <th></th>
                  <?php
				  foreach ($matrix->services() as $id => $service) {
					  echo '<th scope="col"><span title="'.$service->name.'">'.$id.'</span></th>
				  ';
				  } ?>
              </tr>
          </thead>
          <tbody>
			  <?php
			  foreach ($matrix->fields as $id => $field) { ?>
			  <tr>
                  <th scope="row"><span title="<?= $field->name; ?>"><?= $id; ?></span></th>
                  <td class="type"><?= $field->type; ?></td><?php
				  foreach ($matrix->services as $service) {
					  echo $matrix->getHtmlCell($service->fields[$id]);
				  } ?>
              </tr><? } ?>
              <tr>
                  <th scope="row">URL fichiers</th>
                  <td class="type">array</td>
                  <td class="yes" style="font-size:12px">flv, mov</td> <!-- blip -->
                  <td class="yes" style="font-size:12px">flv</td> <!-- dailymotion -->
                  <td class="yes" style="font-size:12px">mp4</td> <!-- flickr -->
                  <td class="yes" style="font-size:12px">avi, flv, mp4</td> <!-- googlevideo -->
                  <td class="no">&times;</td> <!-- metacafe -->
                  <td class="yes" style="font-size:12px">flv</td> <!-- myspace -->
                  <!-- <td class="del">&ndash;</td> revver -->
                  <!-- <td class="del">&ndash;</td> sevenload -->
                  <td class="yes" style="font-size:12px">flv</td> <!-- veoh -->
                  <td class="del">&ndash;</td> <!-- viddler -->
                  <td class="del">&ndash;</td> <!-- vimeo -->
                  <td class="del">&ndash;</td> <!-- youtube -->
              </tr>
          </tbody>
          <tfoot>
              <tr>
                  <td colspan="14">
                      <strong>Légende</strong>
                      <span class="yes">&bull;</span> Disponible
                      <span class="no">&times;</span> Indisponible
                      <span class="del">?</span> Indéterminé
                      <span class="del">&ndash;</span> Pas encore implémenté
                  </td>
              </tr>
          </tfoot>
      </table>
	  
	  <p>Lorsqu'une donnée est indisponible, la propriété est <code>NULL</code> ou un tableau vide.</p>
      
      <h4>Précisions sur les formats</h4>
      <ul>
          <li>Dates publication et mise à jour : objets <a href="http://fr.php.net/manual/en/class.datetime.php">DateTime</a></li>
          <li>Durée : secondes</li>
          <li>Vignettes : tableau d'objets avec 3 propriétés <code>url</code>, <code>width</code> et <code>height</code>, ordonnés par ordre croissant de taille</li>
          <li>URL fichiers : tableau associatif <code>mime-type => url</code></li>
      </ul>
      
      <h4><a href="http://fr.wikipedia.org/wiki/Type_MIME">Types MIME</a> des différents formats de vidéo</h4>
      <ul>
          <li>AVI : <code>video/x-msvideo</code></li>
          <li>FLV : <code>video/x-flv</code></li>
          <li>MOV : <code>video/quicktime</code></li>
          <li>MP4 : <code>video/mp4</code></li>
      </ul>
     
      <h2><a name="example"></a> 2. <span>Exemple d'utilisation</span></h2>
      <p>Pour</p>
	  
      <pre><code class="block">$Videopian = new Videopian();
$video = $Videopian->get('http://www.dailymotion.com/video/x2bein_vwater_ads');</code></pre>
      
	  <p>ou</p>
	  
      <pre><code class="block">$video = Videopian::get('http://www.dailymotion.com/video/x2bein_vwater_ads');</code></pre>
      
      <p><code>$video</code> contient :</p>
      
      <pre><code class="block" style="height:200px">object(stdClass)#1 (14) {
  ["url"]=>
  string(50) "http://www.dailymotion.com/video/x2bein_vwater_ads"
  ["site"]=>
  string(11) "dailymotion"
  ["xml_url"]=>
  string(43) "http://www.dailymotion.com/rss/video/x2bein"
  ["title"]=>
  string(7) "V_WATER"
  ["description"]=>
  string(0) ""
  ["tags"]=>
  array(10) {
    [0]=>
    string(6) "london"
    [1]=>
    string(9) "animation"
    [2]=>
    string(6) "vwater"
    [3]=>
    string(5) "water"
    [4]=>
    string(4) "kick"
    [5]=>
    string(4) "glow"
    [6]=>
    string(6) "shield"
    [7]=>
    string(9) "de-stress"
    [8]=>
    string(6) "stress"
    [9]=>
    string(7) "vitamin"
  }
  ["duration"]=>
  int(79)
  ["author"]=>
  string(9) "tudoempaz"
  ["author_url"]=>
  string(36) "http://www.dailymotion.com/tudoempaz"
  ["date_published"]=>
  object(DateTime)#11 (0) {
  }
  ["date_updated"]=>
  NULL
  ["thumbnails"]=>
  array(1) {
    [0]=>
    object(stdClass)#12 (3) {
      ["url"]=>
      string(57) "http://www.dailymotion.com/thumbnail/320x240/video/x2bein"
      ["width"]=>
      int(320)
      ["height"]=>
      int(240)
    }
  }
  ["player_url"]=>
  string(37) "http://www.dailymotion.com/swf/x2bein"
  ["files"]=>
  array(1) {
    ["video/x-flv"]=>
    string(101) "http://www.dailymotion.com/cdn/FLV-80x60/video/x2bein?key=d4dddf3023e601f760a90fe253ad761213d7df6.flv"
  }
}
</code></pre>
      
      <h2><a name="demo"></a> 3. <span>Démo</span></h2>
	  
	  <p>Pour tester Videopian, entrez l'URL d'une vidéo ci-dessous :</p>
	  
	  <form action="#demo" name="demo" id="formdemo" method='post'>
	  	<fieldset>
	  		<input type="text" name="url"<?php if (isset($_POST['url'])) echo ' value="'.$_POST['url'].'"'; else echo 'value="http://www.youtube.com/watch?v=SToOccPytl8"'; ?> style="width:300px" />
			<select name="mode"><option>normal</option><option<?php if (isset($_POST['mode']) && $_POST['mode'] == 'oEmbed') echo ' selected="selected"'; ?>>oEmbed</option></select>
			<input type="hidden" name="lang" value="fr" />
			<input type="submit" value="Et bim !" />
	  	</fieldset>
	  </form>
	  
	  <div id="result">
	  	<?php if (isset($_POST['url'])) include('demo.php'); ?>
	  </div>
	  
	  <h2 style="clear:both"><a name="download"></a> 4. <span>Téléchargement</span></h2>
	  
	  <p><a href="files/Videopian-latest.phps">Source v0.2</a> – <span class="filesize">29Ko</span><br />
	  <a href="files/Videopian-latest.zip">Version zip v0.2</a> – <span class="filesize">5Ko</span></p>
	  
	  <h2 style="clear:both"><a name="roadmap"></a> 5. <span>Feuille de route</span></h2>
	  
	  <ul>
	  	<li>support de données supplémentaires : dimensions de la vidéo, plus d'URL de fichiers vidéo disponibles</li>
	  	<li>support des services suivants : <a href="http://www.revver.com">Revver</a>, <a href="http://www.sevenload.com">Sevenload</a>, <a href="http://www.viddler.com">Viddler</a></li>
	  	<li>ajout d'un mode expérimental qui parse le HTML pour récupérer les infos non disponibles via l'API</li>
	  </ul>
	  
	  <h2 style="clear:both"><a name="changelog"></a> 6. <span>Historique des changements</span></h2>
	  
	  <p><strong>v0.2</strong> (09.12.2009) :</p>
	  <ul>
		  <li>annulation du support pour Imeem</li>
		  <li>ajout de la récupération des dimensions de la vidéo</li>
		  <li>ajout du support oEmbed avec la fonction <code>getOEmbed()</code></li>
	  </ul>
	  <p><strong>v0.1.1</strong> (17.07.2009) : correction d'un bug pour les vidéos Dailymotion lors de l'utilisation de la méthode statique <code>get</code></p>
	  <p><strong>v0.1</strong> (16.07.2009) : première version stable</p>
	  
    </div>
  </div>
  <div id="apropos">
      <h4><span>À propos :</span> infos, contacts &amp; more</h4>
      <p>Outil réalisé par Denis Hovart &lt;denis@<a href="http://www.upian.com">upian</a>&gt; et Hans Lemuet &lt;hans@<a href="http://www.upian.com">upian</a>&gt;</p>
      <p>Remerciements à Florent Messa pour ses contributions.</p>
      <p>Depuis 1998, Upian accompagne les agences interactives. Depuis 1998, Upian produit aussi des contenus indépendants et culturels.</p>
	  <p>Ce script est référencé sur <a href="http://freshmeat.net/projects/videopian">freshmeat</a> et <a href="http://www.HotScripts.com/?RID=N777594">Hot Scripts</a>.</p>
  </div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-1918539-3");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>